home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / C / LIB / UNIXLIB37B / !UnixLib37 / src / unix / c / sysconf < prev    next >
Text File  |  1996-11-09  |  3KB  |  184 lines

  1. /****************************************************************************
  2.  *
  3.  * $Source: /unixb/home/unixlib/source/unixlib37/src/unix/c/RCS/sysconf,v $
  4.  * $Date: 1996/10/30 22:04:51 $
  5.  * $Revision: 1.1 $
  6.  * $State: Rel $
  7.  * $Author: unixlib $
  8.  *
  9.  * $Log: sysconf,v $
  10.  * Revision 1.1  1996/10/30 22:04:51  unixlib
  11.  * Initial revision
  12.  *
  13.  ***************************************************************************/
  14.  
  15. static const char rcs_id[] = "$Id: sysconf,v 1.1 1996/10/30 22:04:51 unixlib Rel $";
  16.  
  17. /* unix.c.sysconf. Return system implementation details.
  18.  
  19.    Written by Nick Burrett, 13 October 1996.  */
  20.  
  21. #include <errno.h>
  22. #include <limits.h>
  23. #include <unistd.h>
  24. #include <stddef.h>
  25. #include <stdio.h>
  26. #include <time.h>
  27.  
  28. /* Get the value of the system variable NAME.  */
  29. long int
  30. sysconf (int name)
  31. {
  32.   switch (name)
  33.     {
  34.     default:
  35.       errno = EINVAL;
  36.       return -1;
  37.  
  38.     case _SC_ARG_MAX:
  39. #ifdef    ARG_MAX
  40.       return ARG_MAX;
  41. #else
  42.       return -1;
  43. #endif
  44.  
  45.     case _SC_CHILD_MAX:
  46. #ifdef    CHILD_MAX
  47.       return CHILD_MAX;
  48. #else
  49.       return -1;
  50. #endif
  51.  
  52.     case _SC_CLK_TCK:
  53.       return 60;
  54.  
  55.     case _SC_NGROUPS_MAX:
  56. #ifdef    NGROUPS_MAX
  57.       return NGROUPS_MAX;
  58. #else
  59.       return -1;
  60. #endif
  61.  
  62.     case _SC_OPEN_MAX:
  63.       return getdtablesize ();
  64.  
  65.     case _SC_STREAM_MAX:
  66.       return FOPEN_MAX;
  67.  
  68.     case _SC_TZNAME_MAX:
  69. #ifdef _POSIX_TZNAME_MAX
  70.       return _POSIX_TZNAME_MAX;
  71. #else
  72.       return -1;
  73. #endif
  74.  
  75.     case _SC_JOB_CONTROL:
  76. #ifdef    _POSIX_JOB_CONTROL
  77.       return 1;
  78. #else
  79.       return -1;
  80. #endif
  81.     case _SC_SAVED_IDS:
  82. #ifdef    _POSIX_SAVED_IDS
  83.       return 1;
  84. #else
  85.       return -1;
  86. #endif
  87.     case _SC_VERSION:
  88.       return _POSIX_VERSION;
  89.  
  90.     case _SC_PAGESIZE:
  91.       return getpagesize ();
  92.  
  93.     case _SC_BC_BASE_MAX:
  94. #ifdef    BC_BASE_MAX
  95.       return BC_BASE_MAX;
  96. #else
  97.       return -1;
  98. #endif
  99.  
  100.     case _SC_BC_DIM_MAX:
  101. #ifdef    BC_DIM_MAX
  102.       return BC_DIM_MAX;
  103. #else
  104.       return -1;
  105. #endif
  106.  
  107.     case _SC_BC_SCALE_MAX:
  108. #ifdef    BC_SCALE_MAX
  109.       return BC_SCALE_MAX;
  110. #else
  111.       return -1;
  112. #endif
  113.  
  114.     case _SC_BC_STRING_MAX:
  115. #ifdef    BC_STRING_MAX
  116.       return BC_STRING_MAX;
  117. #else
  118.       return -1;
  119. #endif
  120.  
  121.     case _SC_EQUIV_CLASS_MAX:
  122. #ifdef    EQUIV_CLASS_MAX
  123.       return EQUIV_CLASS_MAX;
  124. #else
  125.       return -1;
  126. #endif
  127.  
  128.     case _SC_EXPR_NEST_MAX:
  129. #ifdef    EXPR_NEST_MAX
  130.       return EXPR_NEST_MAX;
  131. #else
  132.       return -1;
  133. #endif
  134.  
  135.     case _SC_LINE_MAX:
  136. #ifdef    LINE_MAX
  137.       return LINE_MAX;
  138. #else
  139.       return -1;
  140. #endif
  141.  
  142.     case _SC_RE_DUP_MAX:
  143. #ifdef    RE_DUP_MAX
  144.       return RE_DUP_MAX;
  145. #else
  146.       return -1;
  147. #endif
  148.  
  149.  
  150.     case _SC_2_VERSION:
  151.       /* This is actually supposed to return the version
  152.      of the 1003.2 utilities on the system {POSIX2_VERSION}.  */
  153.       return _POSIX2_C_VERSION;
  154.  
  155.     case _SC_2_C_BIND:
  156. #ifdef    _POSIX2_C_BIND
  157.       return _POSIX2_C_BIND;
  158. #else
  159.       return -1;
  160. #endif
  161.  
  162.     case _SC_2_C_DEV:
  163. #ifdef    _POSIX2_C_DEV
  164.       return _POSIX2_C_DEV;
  165. #else
  166.       return -1;
  167. #endif
  168.  
  169.     case _SC_2_FORT_DEV:
  170. #ifdef    _POSIX2_FORT_DEV
  171.       return _POSIX2_FORT_DEV;
  172. #else
  173.       return -1;
  174. #endif
  175.  
  176.     case _SC_2_SW_DEV:
  177. #ifdef    _POSIX2_SW_DEV
  178.       return _POSIX2_SW_DEV;
  179. #else
  180.       return -1;
  181. #endif
  182.     }
  183. }
  184.